package com.newtouch.bxzs.enterprise.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.newtouch.bxzs.common.base.model.EnterpriseCustomer;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 企业客户信息表mapper
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/2/3 9:44</td>
 * <td>dingqianbin</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author dingqianbin
 * @version 1.0.0
 * @since 1.0.0
 */
@Mapper
public interface EnterpriseCustomerMapper extends BaseMapper<EnterpriseCustomer> {

    /**
     * 获取企业客户列表信息
     *
     * @param enterpriseCustomerName 企业客户名称
     * @param enterpriseCustomerGroupId 企业客户分组ID
     * @param userJobNumber 用户工号
     * @return 企业客户列表信息集合
     */
    List<EnterpriseCustomer> getCustomerList(@Param("enterpriseCustomerName") String enterpriseCustomerName, @Param("enterpriseCustomerGroupId") String enterpriseCustomerGroupId , @Param("userJobNumber") String userJobNumber);

    /**
     * 获取可添加的企业客户列表
     *
     * @param enterpriseCustomerName 企业客户名称
     * @param enterpriseCustomerGroupId 企业客户分组ID
     * @param userJobNumber 用户工号
     * @return 企业客户列表
     */
    List<EnterpriseCustomer> getEnableAddCustomerList(@Param("enterpriseCustomerGroupId") String enterpriseCustomerGroupId, @Param("userJobNumber") String userJobNumber, @Param("enterpriseCustomerName") String enterpriseCustomerName);

    /**
     * 插入企业客户信息，过滤掉相同的企业客户名称以及统一社会信用代码
     *
     * @param enterpriseCustomer 企业客户信息
     * @return Integer
     */
    Integer insertEnterpriseCustomer(@Param("enterpriseCustomer") EnterpriseCustomer enterpriseCustomer);

    /**
     * 修改企业客户信息，过滤掉相同的企业客户名称以及统一社会信用代码
     *
     * @param enterpriseCustomer 企业客户信息
     * @param enterpriseCustomerName 企业客户名称
     * @param unifiedSocialCreditCode 统一社会信用代码
     * @return Integer
     */
    Integer updateEnterpriseCustomer(@Param("enterpriseCustomer") EnterpriseCustomer enterpriseCustomer, @Param("enterpriseCustomerName") String enterpriseCustomerName, @Param("unifiedSocialCreditCode") String unifiedSocialCreditCode);
}
